import React from 'react';
import { Route } from "react-router-dom";
import { getToken } from 'utils/storage';

// 鉴权路由-封装为单位的组件
//1.新建AuthRoute组件,作为鉴权路由组件
//2.提取path和component属性,让鉴权路由的API尽量贴近Route组件
//3.react组件的开头是大写开头,注意component要重名为Com
//4.重构为单独组件



// 路由鉴权组件封装
export default function AuthRoute(props) {
  //透传剩余属性
  // 1. 使用...结构剩余属性，类似函数的剩余参数
  const { path, component: Comp,...restProps  } = props;
  return (
    <Route
     // 2. 将剩余属性，全部分配给Route组件即可
     {...restProps }
    path={path}
      render={(props) => {
        // 获取token,有的话就进去Layout
        // 没有的话就跳转到登录页
        if (getToken()) {
          return <Comp {...props}></Comp>;
        } else {
          props.history.push('/login');
        }
      }}
    ></Route>);
}
